package com.elitel.frame.main.dao.ext;

import com.elitel.frame.main.entity.ext.ExtUserInfo;
import com.elitel.frame.main.entity.vo.PageRequestVo;

import java.util.List;
import java.util.Map;

/**
 * TODO: ExtUserInfoMapper
 *
 * @since 2020-02-26
 */
public interface ExtUserInfoMapper {

  ExtUserInfo selectByLoginName(String loginName);

  ExtUserInfo selectByAuthorizationCode(String authorizationCode);

  /**
   * 批量添加用户对应项目
   *
   * @param mapParams
   * @return
   */
  int insertProjectToUserBatch(Map<String, Object> mapParams);

  int insertProjectToUserBatchSqlite(Map<String, Object> mapParams);

  /**
   * 获取用户列表分页
   *
   * @param pr
   * @return
   */
  List<ExtUserInfo> getUserInfoByPagination(PageRequestVo<ExtUserInfo> pr);

  /**
   * 分页总数
   *
   * @param pr
   * @return
   */
  Long getCountByPagination(PageRequestVo<ExtUserInfo> pr);

  /**
   * 根据 userID 获取用户信息
   *
   * @param userId
   * @return
   */
  ExtUserInfo selectByUserId(String userId);

  /**
   * 根据 用户登录名获取对应项目
   *
   * @param loginname
   * @return
   */
  List<String> selectProjectByLoginname(String loginname);

  /**
   * 根据用户登录名 删除对应项目
   *
   * @param loginname
   * @return
   */
  int deleteProjectByLoginname(String loginname);

  /**
   * 根据用户登录名 删除用户
   *
   * @param loginname
   * @return
   */
  int deleteByLoginname(String loginname);
}
